﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using SIIE_ERP.BaseDatos;
using System.Data;

namespace Elysium.Demo.Ventas.Transacciones
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class Cotizacion_Consulta : UserControl
    {
        private UsuarioActivo _sesion;

        public Cotizacion_Consulta(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
            CargarDatos();
        }
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }
        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            (this.Parent as ScrollViewer).Content = null;
        }


        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////
        private void CargarDatos()
        {
            var db = new SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_Ventas(_sesion.RFC, _sesion.UserName);

            var datos = db.Get_Documentos(Documentos_Id.Doc_CotizacionVenta).Rows;
            DatosDataGrid.Items.Clear();
            foreach (DataRow d in datos)
            {
                var Id = d["Id_Cotizacion_Venta"].ToString();
                var Serie = (String.IsNullOrEmpty(d["Foto_Serie"].ToString())) ? d["Desc_Serie"].ToString() : d["Foto_Serie"].ToString();
                var Secuencia = d["Secuencia"].ToString();
                var Cliente = (String.IsNullOrEmpty(d["Foto_Cliente_RazonSocial"].ToString())) ? d["Desc_Cliente"].ToString() : d["Foto_Cliente_RazonSocial"].ToString();
                var Estatus = d["Desc_Estatus"].ToString();
                var Descripcion = d["Descripcion"].ToString();
                var Fecha = d["Fecha_Documento"].ToString();
                var Vencimiento = d["Fecha_Vencimiento"].ToString();
                var Entrega = d["Fecha_Entrega"].ToString();
                var Almacen = (String.IsNullOrEmpty(d["Foto_Almacen"].ToString())) ? d["Desc_Almacen"].ToString() : d["Foto_Almacen"].ToString();
                var ImporteTotal = d["Total"].ToString();
                var Saldo = d["Saldo"].ToString();

                DatosDataGrid.Items.Add(new CDocto(Id, Serie, Cliente, Secuencia, Estatus, Descripcion, DateTime.Parse(Fecha), DateTime.Parse(Vencimiento), DateTime.Parse(Entrega), Almacen, Double.Parse(ImporteTotal), Double.Parse(Saldo)));
            }
        }

        class CDocto
        {
            public string Id { get; set; }
            public string Serie { get; set; }
            public string Secuencia { get; set; }
            public string Cliente { get; set; }
            public string Estatus { get; set; }
            public string Descripcion { get; set; }
            public DateTime Fecha { get; set; }
            public DateTime Vencimiento { get; set; }
            public DateTime Entrega { get; set; }
            public string Almacen { get; set; }
            public double ImporteTotal { get; set; }
            public double Saldo { get; set; }

            public CDocto(string Id, string Serie, string Cliente, string Secuencia, string Estatus, string Descripcion, DateTime Fecha, DateTime Vencimiento, DateTime Entrega, string Almacen, double ImporteTotal, double Saldo)
            {
                this.Id = Id;
                this.Serie = Serie;
                this.Cliente = Cliente;
                this.Secuencia = Secuencia;
                this.Estatus = Estatus;
                this.Descripcion = Descripcion;
                this.Fecha = Fecha;
                this.Vencimiento = Vencimiento;
                this.Entrega = Entrega;
                this.Almacen = Almacen;
                this.ImporteTotal = ImporteTotal;
                this.Saldo = Saldo;
            }
        }

        private void AbrirLinkDatos_Click(object sender, RoutedEventArgs e)
        {
            SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar((e.Source as Hyperlink).NavigateUri.OriginalString,
                                                         typeof(Cotizacion_Edita),
                                                         ref DatosTabControl, _sesion);
        }

        private void TabItem_GotFocus(object sender, RoutedEventArgs e)
        {
            try
            {
                SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar((e.OriginalSource as Hyperlink).NavigateUri.OriginalString,
                                                         typeof(Cotizacion_Edita),
                                                         ref DatosTabControl, _sesion);
            }
            catch (Exception)
            {
                CargarDatos();
            }

        }

        private void ButtonNuevo_Click(object sender, RoutedEventArgs e)
        {
            SIIE_ERP.View.NavegacionUI.AbrirPestanaNuevo(typeof(Cotizacion_Alta),
                                                         ref DatosTabControl, _sesion);
        }

        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("Cotizacion.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

       
     
    }
}
